package com.mingxingyi.applet.service;

import com.mingxingyi.applet.pojo.dto.UserFriendListDto;
import com.mingxingyi.applet.pojo.dto.UserInfoDto;
import com.mingxingyi.applet.pojo.dto.UserLoginDto;
import com.mingxingyi.applet.pojo.vo.UserFriendListVo;
import com.mingxingyi.applet.pojo.vo.UserInfoVo;
import com.mingxingyi.applet.pojo.vo.UserLoginVo;
import com.mingxingyi.base.pojo.RequestDTO;
import com.mingxingyi.base.pojo.ResultVO;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

public interface UserInfoService {


    ResultVO<UserLoginVo> loginFirst(MultipartFile file,
                                     String username,
                                     String code,
                                     String phoneNumber) throws IOException;



    /**
     * 已经登录的接口
     *
     * @param dto
     * @return
     */
    ResultVO<UserLoginVo> login(RequestDTO<UserLoginDto> dto);

    ResultVO<UserInfoVo> updateUserInfo(RequestDTO<UserInfoDto> vo);


    ResultVO<UserInfoVo> uploadProfileImage(MultipartFile file, Integer userId) throws IOException;

    ResultVO<UserInfoVo> getUserInfoOnFree(RequestDTO<UserInfoDto> vo);

    ResultVO<Object> getShareUid(RequestDTO<UserInfoDto> vo);

    ResultVO<UserFriendListVo> addFriend(RequestDTO<UserFriendListDto> vo);

    ResultVO<UserInfoVo> selectFriendList(RequestDTO<UserInfoVo> vo);

    ResultVO<UserFriendListVo> updateRemark(RequestDTO<UserFriendListDto> dtoRequestDTO);

    ResultVO<UserFriendListVo> deleteFriend(RequestDTO<UserFriendListDto> vo);

    ResultVO<UserLoginVo> loginOut(RequestDTO<UserLoginDto> vo);

    ResultVO<UserInfoVo> refreshToken(RequestDTO<UserInfoDto> vo);


    ResultVO<UserInfoVo> getPhoneNumber(RequestDTO<UserInfoVo> vo);

    ResultVO<UserInfoVo> getPhoneNumberFree(RequestDTO<UserInfoVo> vo);

}
